package com.itany.corejava.code08_常用类.string;

/**
 * @author 石小俊
 * @date 2023年04月27日 9:34
 */
public class Test12_可变字符串 {
    public static void main(String[] args) {
        // 可变字符串主要有两种:StringBuffer、StringBuilder
        // 两者的构造方法一致
        // 创建一个StringBuffer类型的空字符串
        StringBuffer buffer = new StringBuffer();
        // 创建一个StringBuilder类型的字符串,其初始值为admin
        StringBuilder builder = new StringBuilder("admin");

        buffer.append("Hello");
        buffer.append(" ");
        buffer.append("World");
        System.out.println(buffer);

        buffer.insert(0, '[');
        buffer.insert(7, "-");
        System.out.println(buffer);

        buffer.delete(0, 8);
        buffer.deleteCharAt(2);
        System.out.println(buffer);

        // setLength(length)将字符串长度设置为length
        // 当设置后的长度小于原来的长度,则直接舍去后面多余的
        buffer.setLength(2);
        System.out.println(buffer);
        // 当设置后的长度大于原来的长度,会追加一个ASCII码为0的字符
        // 该字符很多字体不识别,如果识别会显示与微小型NUL
        buffer.setLength(5);
        System.out.println(buffer);

        buffer.delete(2, 5);
        buffer.append("rld");
        System.out.println(buffer);
        buffer.reverse();
        System.out.println(buffer);

        String s = buffer.toString();
        System.out.println(s);
    }
}
